package net.towee.model.repo;

import java.util.Date;

import net.towee.model.account.AccountIdentity;
import net.towee.model.group.GroupIdentity;

import com.google.gwt.user.client.rpc.IsSerializable;

/**
 * Contain identity information about document
 * @author c58
 */
public interface DocumentIdentity extends IsSerializable  {
	/**
	 * @return id of document
	 */
	String getId();
	
	/**
	 * Set id of identity
	 * @param id
	 */
	void setId(String id);
	
	/**
	 * @return name of document
	 */
	String getName();
	
	/**
	 * Set new name of document
	 * @param name
	 */
	void setName(String name);
	
	/**
	 * @return author identity of this document
	 */
	AccountIdentity getAuthor();
	
	/**
	 * @return id of group
	 */
	GroupIdentity getGroup();
	
	/**
	 * @return container of document types
	 */
	DocumentTypesContainer getDocumentTypes();

	/**
	 * Set author of this document
	 * @param accountIdentity
	 */
	void setAuthor(AccountIdentity accountIdentity);

	/**
	 * Set group of document
	 * @param groupIdentity
	 */
	void setGroup(GroupIdentity groupIdentity);

	/**
	 * Set creation date of document
	 * @param creationDate
	 */
	void setCreationDate(Date creationDate);

	/**
	 * Set update date of document
	 * @param creationDate
	 */
	void setUpdateDate(Date creationDate);

	Date getCreationDate();

	Date getUpdateDate();
}
